package com.yy.wga.mp.module.goods.api;


import com.alibaba.fastjson.JSONObject;
import com.github.lianjiatech.retrofit.spring.boot.annotation.RetrofitClient;
import retrofit2.http.Body;
import retrofit2.http.POST;
import retrofit2.http.Query;

import java.util.Map;

@RetrofitClient(baseUrl = "https://api.weixin.qq.com/channels/ec/promoter/")
public interface PromoterProductApi {


    /**
     * 获取推客机构可推广的商品列表。
     *
     * @param accessToken OAuth2访问令牌
     * @param dataMap     请求参数对象
     * @return 包含响应数据的JSONObject对象
     */
    @POST("get_promote_product_list")
    JSONObject getPromoteProductList(@Query("access_token") String accessToken, @Body Map<String, Object> dataMap);


    /**
     * 获取推客机构可推广的商品详情。
     *
     * @param accessToken OAuth2访问令牌
     * @param dataMap     请求参数对象
     * @return 包含响应数据的JSONObject对象
     */
    @POST("get_promote_product_detail")
    JSONObject getPromoteProductDetail(@Query("access_token") String accessToken, @Body Map<String, Object> dataMap);

    /**
     * 获取推客对某个商品的推广短链。
     * https://developers.weixin.qq.com/doc/channels/API/leagueheadsupplier/promotion/getproductpromotionlinkinfo.html
     *
     * @param accessToken OAuth2访问令牌
     * @param dataMap     请求参数对象
     * @return 包含响应数据的JSONObject对象
     */
    @POST("get_product_promotion_link_info")
    JSONObject getProductPromotionLinkInfo(@Query("access_token") String accessToken, @Body Map<String, Object> dataMap);

    /**
     * 获取推客对某个商品的推广二维码。
     * https://developers.weixin.qq.com/doc/channels/API/leagueheadsupplier/promotion/getproductpromotionqrcodeinfo.html
     *
     * @param accessToken OAuth2访问令牌
     * @param dataMap     请求参数对象
     * @return 包含响应数据的JSONObject对象
     */
    @POST("get_product_promotion_qrcode_info")
    JSONObject getProductPromotionQrcodeInfo(@Query("access_token") String accessToken, @Body Map<String, Object> dataMap);

    /**
     * 获取某个推客某个商品的内嵌商品卡片product_promotion_link。
     * https://developers.weixin.qq.com/doc/channels/API/leagueheadsupplier/promotion/getpromotersingleproductpromotioninfo.html
     *
     * @param accessToken OAuth2访问令牌
     * @param dataMap     请求参数对象
     * @return 包含响应数据的JSONObject对象
     */

    @POST("get_promoter_single_product_promotion_info")
    JSONObject getPromoterSingleProductPromotionInfo(@Query("access_token") String accessToken, @Body Map<String, Object> dataMap);
}
